package com.simple.gateway.core.executor;

import com.simple.gateway.core.datasource.Connection;
import com.simple.gateway.core.session.Configuration;

/**
 * 项目: simple-gateway
 * <p>
 * 功能描述: 简单的执行器
 *
 * @author: WuChengXing
 * @create: 2023-08-05 16:12
 **/
public class SimpleExecutor extends BaseExecutor {

    public SimpleExecutor(Configuration configuration, Connection connection) {
        super(configuration, connection);
    }

    @Override
    protected Object doExec(String methodName, String[] parameterTypes, Object[] args) {
        /**
         * todo fix
         * 调用服务
         * 封装参数 PS：为什么这样构建参数，可以参考测试案例；com.simple.gateway.core.common.CommonDataTest
         * 01(允许)：java.lang.String
         * 02(允许)：com.simple.gateway.test.provider.rpc.dto.UserRequestDTO
         * 03(拒绝)：java.lang.String, com.simple.gateway.test.provider.rpc.dto.UserRequestDTO —— 不提供多参数方法的处理
         *
         */
        return connection.execute(methodName, parameterTypes, new String[]{"ignore"}, args);
    }
}
